package com.asktgapp.application;

import com.asktgapp.architecture.retrofit.ApiResponseBody;
import com.asktgapp.base.IndustryCommentDetailVO;
import com.asktgapp.model.AccountRecordVO;
import com.asktgapp.model.BalanceVO;
import com.asktgapp.model.BankVO;
import com.asktgapp.model.BrandVO;
import com.asktgapp.model.ChatRecordVO;
import com.asktgapp.model.CodeVO;
import com.asktgapp.model.CollectionVO;
import com.asktgapp.model.CommentListVO;
import com.asktgapp.model.CommentVO;
import com.asktgapp.model.ConsumVO;
import com.asktgapp.model.DeviceTypeVO;
import com.asktgapp.model.DifferentTypeVO;
import com.asktgapp.model.EngineerDetailVO;
import com.asktgapp.model.EngineerVO;
import com.asktgapp.model.EvaluateLableNumVo;
import com.asktgapp.model.EvaluateVO;
import com.asktgapp.model.FreeAskDetailVO;
import com.asktgapp.model.FreeAskSearchVO;
import com.asktgapp.model.HomeServiceDetailVO;
import com.asktgapp.model.HomeServiceVO;
import com.asktgapp.model.HxAccountVO;
import com.asktgapp.model.IndexVO;
import com.asktgapp.model.IndustryInfoDetailVO;
import com.asktgapp.model.IndustryInfoVO;
import com.asktgapp.model.LawVO;
import com.asktgapp.model.LoginVO;
import com.asktgapp.model.MyFollowVO;
import com.asktgapp.model.MyPublishNewVO;
import com.asktgapp.model.MyPublishVO;
import com.asktgapp.model.NewEngineerDetailVO;
import com.asktgapp.model.NewHomeOneBean;
import com.asktgapp.model.NewHomeTwoBean;
import com.asktgapp.model.OpenAuthVO;
import com.asktgapp.model.PayConsultItemVO;
import com.asktgapp.model.PayVO;
import com.asktgapp.model.PutQuestionsChooseVO;
import com.asktgapp.model.QiuZuDetailVO;
import com.asktgapp.model.QuestionDetailVO;
import com.asktgapp.model.QuestionVO;
import com.asktgapp.model.RegisterVo;
import com.asktgapp.model.RentDetialVO;
import com.asktgapp.model.RentInfoVO;
import com.asktgapp.model.RewardBean;
import com.asktgapp.model.SearchVO;
import com.asktgapp.model.SecondhandTypeVO;
import com.asktgapp.model.ServiceOrderItemVO;
import com.asktgapp.model.ShareVO;
import com.asktgapp.model.StartPagePicVO;
import com.asktgapp.model.SystemMsgVO;
import com.asktgapp.model.UsedMachineDetailVO;
import com.asktgapp.model.UsedMachineVO;
import com.asktgapp.model.UserEvaluateVO;
import com.asktgapp.model.UserInfoVO;

import java.util.List;
import java.util.Map;

import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.PartMap;
import retrofit2.http.QueryMap;

/**
 * time:2018/1/4
 * Create By ZhaoKai
 * Email: dczk@foxmail.com
 * Description:
 */

public interface Apiservice {
    /***
     * 账号登录。
     * */
    @POST("api_app_login.do")
    @FormUrlEncoded
    Call<ApiResponseBody> logn(@FieldMap Map<String, Object> params);


    /***
     * 账号登录。
     * */

    @POST("mobile?methodName=StartpageList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<StartPagePicVO>>> getStartPagePic(@FieldMap Map<String, Object> params);

    /***
     * 账号注册。
     * */

    @POST("mobile?methodName=register")
    @FormUrlEncoded
    Call<ApiResponseBody<RegisterVo>> register(@FieldMap Map<String, Object> params);

    /**
     * 发送验证码
     *
     * @param params
     * @return
     */
    @POST("mobile?methodName=sendCode")
    @FormUrlEncoded
    Call<ApiResponseBody<CodeVO>> sendCode(@FieldMap Map<String, Object> params);


    /**
     * 登录
     */
    @POST("mobile?methodName=Login")
    @FormUrlEncoded
    Call<ApiResponseBody<LoginVO>> Login(@FieldMap Map<String, Object> params);

    /**
     * 首页
     */
    @POST("mobile?methodName=index")
    @FormUrlEncoded
    Call<ApiResponseBody<IndexVO>> getIndex(@FieldMap Map<String, Object> params);

    /**
     * 首页轮播
     * ?methodName=homeBroadcast
     */
    @POST("mobile?methodName=homeBroadcast")
    @FormUrlEncoded
    Call<ApiResponseBody<IndexVO>> homeBroadcast(@FieldMap Map<String, Object> params);

    @GET("mobile?methodName=index")
    Call<ApiResponseBody<IndexVO>> getindex();

    /**
     * 获取问答详情
     */
    @POST("mobile?methodName=getQuestionInfo")
    @FormUrlEncoded
    Call<ApiResponseBody<QuestionDetailVO>> getQuestionInfo(@FieldMap Map<String, Object> params);

    /**
     * 点赞
     */
    @POST("mobile?methodName=like") //类型 0:资讯 1:问题回答2.问题点赞3.问题答案二级点赞 4.资讯评论 点赞 5 资讯二级回复点赞
    @FormUrlEncoded
    Call<ApiResponseBody> doLike(@FieldMap Map<String, Object> params);

    /**
     * 修改头像
     */
    @POST("mobile?methodName=updateUserInfo")
    @Multipart
    Call<ApiResponseBody> updateHeadIMG(@PartMap Map<String, RequestBody> params, @Part List<MultipartBody.Part> parts);

    /**
     * 修改昵称
     */
    @POST("mobile?methodName=updateUserInfo")
    @FormUrlEncoded
    Call<ApiResponseBody> updateNick(@FieldMap Map<String, Object> params);

    /**
     * 46 获取
     */
    @POST("mobile?methodName=myNotReadMsg")
    @FormUrlEncoded
    Call<ApiResponseBody> getNotReadMsg(@FieldMap Map<String, Object> params);

    /**
     * 44 我的消息-系统消息列表接口
     */
    @POST("mobile?methodName=systemMsg")
    @FormUrlEncoded
    Call<ApiResponseBody<List<SystemMsgVO>>> getSystemMsg(@FieldMap Map<String, Object> params);

    /**
     * 47 我的消息-消费记录列表接口
     */
    @POST("mobile?methodName=cashMsg")
    @FormUrlEncoded
    Call<ApiResponseBody<List<ConsumVO>>> getCashMsg(@FieldMap Map<String, Object> params);

    /**
     * 18 资讯列表接口
     */
    @POST("mobile?methodName=findInfoList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<IndustryInfoVO>>> findInfoList(@FieldMap Map<String, Object> params);

    /**
     * 19 资讯详情 2018/02/26
     */
    @POST("mobile?methodName=getInfo")
    @FormUrlEncoded
    Call<ApiResponseBody<IndustryInfoDetailVO>> getInfo(@FieldMap Map<String, Object> params);

    /**
     * 21 获取资讯评论列表接口 2018/02/26
     */
    @POST("mobile?methodName=findInfoCommentList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<CommentListVO>>> findInfoCommentList(@FieldMap Map<String, Object> params);

    /**
     * 22 资讯评论接口 2018/02/26
     */
    @POST("mobile?methodName=addComment")
    @FormUrlEncoded
    Call<ApiResponseBody<CommentVO>> addComment(@FieldMap Map<String, Object> params);

    /**
     * /mobile?methodName=insertInfoDiscuss资讯二级回复
     * toUserId	int	是	被回复人的主键
     * commentId	int	是	一级回复的主键
     * content	string	是	回复的内容
     */
    @POST("mobile?methodName=insertInfoDiscuss")
    @FormUrlEncoded
    Call<ApiResponseBody<CommentVO>> insertInfoDiscuss(@FieldMap Map<String, Object> params);

    /**
     * 新 资讯详情接口 /mobile?methodName=selInformationDetail
     */
    @POST("mobile?methodName=selInformationDetail")
    @FormUrlEncoded
    Call<ApiResponseBody<IndustryInfoDetailVO>> selInformationDetail(@FieldMap Map<String, Object> params);

    /**
     * 5 密码找回接口
     */
    @POST("mobile?methodName=restPad")
    @FormUrlEncoded
    Call<ApiResponseBody> restPad(@FieldMap Map<String, Object> params);

    /**
     * 3 绑定账号接口
     */
    @POST("mobile?methodName=bindPhone")
    @FormUrlEncoded
    Call<ApiResponseBody<RegisterVo>> bindPhone(@FieldMap Map<String, Object> params);

    /**
     * 50 意见反馈接口
     */
    @POST("mobile?methodName=subPpinion")
    @FormUrlEncoded
    Call<ApiResponseBody> subPpinion(@FieldMap Map<String, Object> params);


    /**
     * 15 类型列表接口
     */
    @POST("mobile?methodName=typeList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<DeviceTypeVO>>> getTypeList(@FieldMap Map<String, Object> params);

    /**
     * 14 品牌列表接口
     */
    @POST("mobile?methodName=brandList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<BrandVO>>> getBrandList(@FieldMap Map<String, Object> params);

    /**
     * 36 发布二手机接口
     */
    @POST("mobile?methodName=subTwoHard")
    @Multipart
    Call<ApiResponseBody> subTwoHard(@PartMap Map<String, RequestBody> params, @Part List<MultipartBody.Part> parts);

    /**
     * 38 发布设备出租接口
     */
    @POST("mobile?methodName=subLease")
    @Multipart
    Call<ApiResponseBody> subLease(@PartMap Map<String, RequestBody> params, @Part List<MultipartBody.Part> parts);


    /**
     * 38 发布设备租接口
     */
    @POST("mobile?methodName=subQiuZu")
    @FormUrlEncoded
    Call<ApiResponseBody> subQiuZu(@FieldMap Map<String, Object> params);


    /**
     * 34 我的发布接口
     */
    @POST("mobile?methodName=mySubList")
    @FormUrlEncoded
    Call<ApiResponseBody<MyPublishNewVO>> mySubList(@FieldMap Map<String, Object> params);


    /**
     * 11 二手机列表(搜索)接口 2018/02/26
     */
    @POST("mobile?methodName=findTwoHardList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<UsedMachineVO>>> findTwoHardList(@FieldMap Map<String, Object> params);

    /**
     * xin  二手机热门分类接口 2018-07-19 13:52:48
     */
    @POST("mobile?methodName=findTwoHardHotTypeList")
    @FormUrlEncoded
    Call<ApiResponseBody<SecondhandTypeVO>> findTwoHardHotTypeList(@FieldMap Map<String, Object> params);

    /**
     * 12 二手机详情接口 2018/02/26
     */
    @POST("mobile?methodName=getTwoHard")
    @FormUrlEncoded
    Call<ApiResponseBody<UsedMachineDetailVO>> getTwoHard(@FieldMap Map<String, Object> params);

    /**
     * 31 关注接口(type区分) 2018/02/26
     */
    @POST("mobile?methodName=follow")
    @FormUrlEncoded
    Call<ApiResponseBody> follow(@FieldMap Map<String, Object> params);

    /**
     * 15 设备租赁(搜索)列表 2018/02/27
     */
    @POST("mobile?methodName=findLeaseInfo")
    @FormUrlEncoded
    Call<ApiResponseBody<RentInfoVO>> findLeaseInfo(@FieldMap Map<String, Object> params);

    /**
     * 16 设备租赁详情接口 2018/02/27
     */
    @POST("mobile?methodName=getLeaseInfo")
    @FormUrlEncoded
    Call<ApiResponseBody<RentDetialVO>> getRentDetail(@FieldMap Map<String, Object> params);

    /**
     * 16 设备租赁详情接口 2018/02/27
     */
    @POST("mobile?methodName=getLeaseInfo")
    @FormUrlEncoded
    Call<ApiResponseBody<QiuZuDetailVO>> getQiuZuDetail(@FieldMap Map<String, Object> params);

    /**
     * 23 二手机发布检测接口 2018/02/27
     */
    @POST("mobile?methodName=subTwoHardCheck")
    @FormUrlEncoded
    Call<ApiResponseBody> subTwoHardCheck(@FieldMap Map<String, Object> params);

    /**
     * 25 提交故障代检接口 2018/02/27
     */
    @POST("mobile?methodName=subGZCheck")
    @FormUrlEncoded
    Call<ApiResponseBody> subGZCheck(@FieldMap Map<String, Object> params);

    /**
     * 35 发布二手机接口(用于删除)2018/02/27
     */
    @POST("mobile?methodName=subTwoHard")
    @FormUrlEncoded
    Call<ApiResponseBody> deleteUsedMachine(@FieldMap Map<String, Object> params);

    /**
     * 36 发布设备出租接口(用于删除)2018/02/27
     */
    @POST("mobile?methodName=subLease")
    @FormUrlEncoded
    Call<ApiResponseBody> deleteRent(@FieldMap Map<String, Object> params);


    /**
     * 新添加的免费提问（新增，修改，删除都用这一个，原来的接口名是：freeSubQuestion）
     * weekend/mobile?methodName= freeSubQuestionNew
     */
    @POST("mobile?methodName=freeSubQuestionNew")
    @Multipart
    Call<ApiResponseBody> freeSubQuestion(@PartMap Map<String, RequestBody> params, @Part List<MultipartBody.Part> parts);

    /**
     * 26 免费提问列表接口 2018/02/27
     */
    @POST("mobile?methodName=freeSubQuestionNew")
    @FormUrlEncoded
    Call<ApiResponseBody> deleteAsk(@FieldMap Map<String, Object> params);


    /**
     * 26 工程师列表 2018/02/27
     */
    @POST("mobile?methodName=findProjecterList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<EngineerVO>>> findProjecterList(@FieldMap Map<String, Object> params);

    /**
     * 新 工程师列表
     * /mobile?methodName=selProjecterList
     */
    @POST("mobile?methodName=selProjecterList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<EngineerVO>>> selProjecterList(@FieldMap Map<String, Object> params);

    /**
     * 30 工程师详情接口 2018/02/27
     */
    @POST("mobile?methodName=getProjecter")
    @FormUrlEncoded
    Call<ApiResponseBody<EngineerDetailVO>> getProjecter(@FieldMap Map<String, Object> params);

    /**
     * 新 工程师详情接口
     * mobile?methodName=projecterDetail
     */
    @POST("mobile?methodName=projecterDetail")
    @FormUrlEncoded
    Call<ApiResponseBody<NewEngineerDetailVO>> projecterDetail(@FieldMap Map<String, Object> params);

    /**
     * mobile?methodName=selEvaluateList 工程师详情查看评价列表 点击查看更多传1直接进入传空值null
     */
    @POST("mobile?methodName=selEvaluateList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<UserEvaluateVO>>> selEvaluateList(@FieldMap Map<String, Object> params);

    /**
     * /mobile?methodName=selInformationList 工程师详情查看发布的资讯列表 点击查看更多传1直接进入传空值null
     */
    @POST("mobile?methodName=selInformationList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<IndustryInfoVO>>> selInformationList(@FieldMap Map<String, Object> params);


    /**
     * 43 我的收藏接口 2018/02/28
     */
    @POST("mobile?methodName=myCollect")
    @FormUrlEncoded
    Call<ApiResponseBody<List<CollectionVO>>> getMyCollect(@FieldMap Map<String, Object> params);

    /**
     * 17 收藏接口(type区分) 2018/02/28
     */
    @POST("mobile?methodName=collect")
    @FormUrlEncoded
    Call<ApiResponseBody> collect(@FieldMap Map<String, Object> params);

    /**
     * 27 问题列表接口 2018/02/28
     */
    @POST("mobile?methodName=findQuestionList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<QuestionVO>>> findQuestionList(@FieldMap Map<String, Object> params);

    /**
     * 52 工程师问答列表接口(我的回答) 2018/02/28
     */
    @POST("mobile?methodName=projecterProblem")
    @FormUrlEncoded
    Call<ApiResponseBody<List<QuestionVO>>> projecterProblem(@FieldMap Map<String, Object> params);

    /**
     * 40 认证工程师接口
     */
    @POST("mobile?methodName=subProjecterNew")
    @Multipart
    Call<ApiResponseBody> subProjecter(@PartMap Map<String, RequestBody> params, @Part MultipartBody.Part Part,
                                       @Part MultipartBody.Part Part2, @Part List<MultipartBody.Part> parts,
                                       @Part MultipartBody.Part Part3);


    /**
     * 32 咨询支付接口 2018/03/02
     */
    @POST("mobile?methodName=pay")
    @FormUrlEncoded
    Call<ApiResponseBody<PayVO>> pay(@FieldMap Map<String, Object> params);

    /**
     * 49 全部设为已读消息接口 2018/03/04
     */
    @POST("mobile?methodName=clearAllMsg")
    @FormUrlEncoded
    Call<ApiResponseBody> clearAllMsg(@FieldMap Map<String, Object> params);

    /**
     * 搜索接口 2018/03/04
     */
    @POST("mobile?methodName=findList")
    @FormUrlEncoded
    Call<ApiResponseBody<SearchVO>> findList(@FieldMap Map<String, Object> params);

    /**
     * 51 工程师的咨询列表 2018/03/04
     * 废弃
     */
    @POST("mobile?methodName=projecterIndex")
    @FormUrlEncoded
    Call<ApiResponseBody<ChatRecordVO>> projecterIndex(@FieldMap Map<String, Object> params);

    /**
     * 53 工程师提交答案接口 2018/03/02
     */
    @POST("mobile?methodName=projecterSubProblem")
    @FormUrlEncoded
    Call<ApiResponseBody> projecterSubProblem(@FieldMap Map<String, Object> params);

    /**
     * 54 工程师得到账号余额接口 2018/03/01
     */
    @POST("mobile?methodName=getProjecterMoney")
    @FormUrlEncoded
    Call<ApiResponseBody<BalanceVO>> getProjecterMoney(@FieldMap Map<String, Object> params);


    /**
     * 55 提现接口 2018/03/01
     */
    @POST("mobile?methodName=tiXian")
    @FormUrlEncoded
    Call<ApiResponseBody> tiXian(@FieldMap Map<String, Object> params);

    /**
     * 56 工程师端的账户明细接口 2018/03/01
     */
    @POST("mobile?methodName=tiXianList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<AccountRecordVO>>> tiXianList(@FieldMap Map<String, Object> params);

    /**
     * 57更新Umeng Token
     */
    @POST("mobile?methodName=updatePushToken")
    @FormUrlEncoded
    Call<ApiResponseBody> updatePushToken(@FieldMap Map<String, Object> params);

    /**
     * 58 获取个人信息
     */
    @POST("mobile?methodName=getUserInfo")
    @FormUrlEncoded
    Call<ApiResponseBody<UserInfoVO>> getUserInfo(@FieldMap Map<String, Object> params);

    /**
     * 59 是否开放认证工程师接口 2018/03/01
     */
    @POST("mobile?methodName=getIsEngineer")
    @FormUrlEncoded
    Call<ApiResponseBody<OpenAuthVO>> isOpenAuth(@FieldMap Map<String, Object> params);

    /**
     * 60 删除二手机/故障代检检测 2018/02/27
     */
    @POST("mobile?methodName=delCheck")
    @FormUrlEncoded
    Call<ApiResponseBody> delCheck(@FieldMap Map<String, Object> params);

    /**
     * 61 银行列表 2018/03/01
     */
    @POST("mobile?methodName=findBankList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<BankVO>>> findBankList(@FieldMap Map<String, Object> params);

    /**
     * 62 普通用户我的咨询列表 2018/03/04
     * 废弃
     */
    @POST("mobile?methodName=chatList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<ChatRecordVO.userListBean>>> chatList(@FieldMap Map<String, Object> params);

    /**
     * 63 结束本次服务 2018/03/04
     */
    @POST("mobile?methodName=endChat")
    @FormUrlEncoded
    Call<ApiResponseBody> endChat(@FieldMap Map<String, Object> params);

    /**
     * 33 聊天 2018/03/05
     */
    @POST("mobile?methodName=chatToUser")
    @FormUrlEncoded
    Call<ApiResponseBody<HxAccountVO>> chatToUser(@FieldMap Map<String, Object> params);

    /**
     * 42 我的关注接口 2018/03/06
     */
    @POST("mobile?methodName=myFollow")
    @FormUrlEncoded
    Call<ApiResponseBody<MyFollowVO>> myFollow(@FieldMap Map<String, Object> params);

    /**
     * 67 获取评价分数 2018/03/06
     */
    @POST("mobile?methodName=getEvaluate")
    @FormUrlEncoded
    Call<ApiResponseBody<EvaluateVO>> getEvaluate(@FieldMap Map<String, Object> params);

    /**
     * 64 65 评价工程师 2018/03/06
     */
    @POST("mobile?methodName=evaluate")
    @FormUrlEncoded
    Call<ApiResponseBody> evaluate(@FieldMap Map<String, Object> params);

    /**
     * 24 系统协议接口(type区分) 2018/03/09
     */
    @POST("mobile?methodName=xieyiInfo")
    @FormUrlEncoded
    Call<ApiResponseBody<LawVO>> xieyiInfo(@FieldMap Map<String, Object> params);

    /**
     * 49 设为已读消息接口 2018/03/09
     */
    @POST("mobile?methodName=clearMsg")
    @FormUrlEncoded
    Call<ApiResponseBody> clearMsg(@FieldMap Map<String, Object> params);

    //分享内容接口
    @POST("mobile?methodName=shareInfo") //0二手机详情 1设备出租详情 2设备求租详情 3问答详情分享 4 维修常识分享
    @FormUrlEncoded
    Call<ApiResponseBody<ShareVO>> shareInfo(@FieldMap Map<String, Object> params);

    /**
     * 搜索接口 2018/03/04
     */
    @POST("mobile?methodName=findMoreList")
    @FormUrlEncoded
    Call<ApiResponseBody<SearchVO>> findMoreList(@FieldMap Map<String, Object> params);

    /**
     * 提现手续费
     */
    @POST("mobile?methodName=getTixianShouxu")
    @FormUrlEncoded
    Call<ApiResponseBody> getTixianShouxu(@FieldMap Map<String, Object> params);

    /**
     * 二手设备全部类型  新
     */
    @POST("mobile?methodName=findMachineType")
    @FormUrlEncoded
    Call<ApiResponseBody<List<DeviceTypeVO>>> getMachineAllType(@FieldMap Map<String, Object> params);

    /**
     * 快速搜索问答 /mobile?methodName=selLikeProbleList
     */
    @POST("mobile?methodName=selLikeProbleList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<FreeAskSearchVO>>> selLikeProbleList(@FieldMap Map<String, Object> params);

    /**
     * 快速问答列表 /mobile?methodName=selProbleList
     */
    @POST("mobile?methodName=selProbleList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<FreeAskSearchVO>>> selProbleList(@FieldMap Map<String, Object> params);

    /**
     * 快速问答详情 /mobile?methodName=selProbleList
     */
    @POST("mobile?methodName=selProbleList")
    @FormUrlEncoded
    Call<ApiResponseBody<FreeAskDetailVO>> selProbleDetail(@FieldMap Map<String, Object> params);

    /**
     * 问答答案评论详情 mobile?methodName=selAnswerDetail
     */
    @POST("mobile?methodName=selAnswerDetail")
    @FormUrlEncoded
    Call<ApiResponseBody<FreeAskDetailVO>> selAnswerDetail(@FieldMap Map<String, Object> params);

    /**
     * 评论问答答案 mobile?methodName=addDiscuss
     */
    @POST("mobile?methodName=addDiscuss")
    @FormUrlEncoded
    Call<ApiResponseBody> addDiscuss(@FieldMap Map<String, Object> params);

    /**
     * mobile?methodName=delAnswerOrDiscusss 工程师删除回复
     */
    @POST("mobile?methodName=delAnswerOrDiscusss")
    @FormUrlEncoded
    Call<ApiResponseBody> delAnswerOrDiscusss(@FieldMap Map<String, Object> params);

    /**
     * /mobile?methodName=selMyProblemList 我的咨询---免费咨询（快速问答）
     */
    @POST("mobile?methodName=selMyProblemList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<FreeAskSearchVO>>> selMyProblemList(@FieldMap Map<String, Object> params);

    /**
     * /mobile?methodName=selMyOrderList 我的咨询---付费咨询
     */
    @POST("mobile?methodName=selMyOrderList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<PayConsultItemVO>>> selMyOrderList(@FieldMap Map<String, Object> params);

    /**
     * mobile?methodName=differentType  查询用户的未读消息数量
     */
    @POST("mobile?methodName=differentType")
    @FormUrlEncoded
    Call<ApiResponseBody<DifferentTypeVO>> differentType(@FieldMap Map<String, Object> params);

    /**
     * /mobile?methodName=changeToRead 将所有的未读变成已读
     */
    @POST("mobile?methodName=changeToRead")
    @FormUrlEncoded
    Call<ApiResponseBody> changeToRead(@FieldMap Map<String, Object> params);

    /**
     * 发布上门服务接口
     * /mobile?methodName=publishService
     * //        1：维修，2：检车，3：保养，4：评估
     */
    @POST("mobile?methodName=publishService")
    @FormUrlEncoded
    Call<ApiResponseBody> publishService(@FieldMap Map<String, Object> params);

    /**
     * 上门服务列表
     * /mobile?methodName=serviceList
     */
    @POST("mobile?methodName=serviceList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<HomeServiceVO>>> serviceList(@FieldMap Map<String, Object> params);

    /**
     * 上门服务详情
     * /mobile?methodName=ServiceDetailByList
     */
    @POST("mobile?methodName=ServiceDetailByList")
    @FormUrlEncoded
    Call<ApiResponseBody<HomeServiceDetailVO>> ServiceDetailByList(@FieldMap Map<String, Object> params);

    /**
     * 工程师收录服务
     * /mobile?methodName=insertServerProject
     */
    @POST("mobile?methodName=insertServerProject")
    @FormUrlEncoded
    Call<ApiResponseBody> insertServerProject(@FieldMap Map<String, Object> params);

    /**
     * 工程师服务报价
     * /mobile?methodName=setServerPrice
     */
    @POST("mobile?methodName=setServerPrice")
    @FormUrlEncoded
    Call<ApiResponseBody> setServerPrice(@FieldMap Map<String, Object> params);

    /**
     * 查询工程师的已支付或未支付的订单列表
     * /mobile?methodName=projectorOrderList
     * isPay	int	是	是否已支付0否1是
     */
    @POST("mobile?methodName=projectorOrderList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<ServiceOrderItemVO>>> projectorOrderList(@FieldMap Map<String, Object> params);

    /**
     * 查询普通用户的已支付和未支付列表
     * /mobile?methodName=userOrderLis
     * isPay	int	是	0未支付1已支付
     */
    @POST("mobile?methodName=userOrderList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<ServiceOrderItemVO>>> userOrderList(@FieldMap Map<String, Object> params);


    /**
     * 投诉工程师
     * mobile?methodName=complaint
     */
    @POST("mobile?methodName=complaint")
    @Multipart
    Call<ApiResponseBody> complaint(@PartMap Map<String, RequestBody> params, @Part List<MultipartBody.Part> parts);

    /**
     * 发布维修常识
     * /mobile?methodName=insertInformation
     */
    @POST("mobile?methodName=insertInformation")
    @Multipart
    Call<ApiResponseBody> insertInformation(@PartMap Map<String, RequestBody> params, @Part List<MultipartBody.Part> parts);

    /**
     * 维修常识一级回复详情页面
     * ?methodName=selInformationCommentDetail
     */
    @POST("mobile?methodName=selInformationCommentDetail")
    @FormUrlEncoded
    Call<ApiResponseBody<IndustryCommentDetailVO>> selInformationCommentDetail(@FieldMap Map<String, Object> params);

    /**
     * 个人中心消息显示接口
     * mobile?methodName=notReadMessageNum
     */
    @POST("mobile?methodName=notReadMessageNum")
    @FormUrlEncoded
    Call<ApiResponseBody<DifferentTypeVO>> notReadMessageNum(@FieldMap Map<String, Object> params);

    /**
     * 工程师更新个人信息
     * /mobile?methodName=updateProjectorDetail
     */
    @POST("mobile?methodName=updateProjectorDetail")
    @FormUrlEncoded
    Call<ApiResponseBody> updateProjectorDetail(@FieldMap Map<String, Object> params);

    //http://140.143.129.120:8080/jiangong/mobile?methodName=cancelServerProject取消上门服务收录
    @POST("mobile?methodName=cancelServerProject")
    @FormUrlEncoded
    Call<ApiResponseBody> cancelServerProject(@FieldMap Map<String, Object> params);

    //    mobile?methodName=delServiceList 删除上门服务
    @POST("mobile?methodName=delServiceList")
    @FormUrlEncoded
    Call<ApiResponseBody> delServiceList(@FieldMap Map<String, Object> params);
    //即使咨询工程师给普通用户回复的时候推送短信
    @POST("mobile?methodName=sendMessageToUser")
    @FormUrlEncoded
    Call<ApiResponseBody> sendMessageToUser(@FieldMap Map<String, Object> params);
    /**
     首页接口1
     */
    @POST("mobile?methodName=newHomeOne")
    @FormUrlEncoded
    Call<ApiResponseBody<NewHomeOneBean>> newHomeOne(@FieldMap Map<String, Object> params);
    /**
     首页接口1
     */
    @POST("mobile?methodName=newHomeTwo")
    @FormUrlEncoded
    Call<ApiResponseBody<NewHomeTwoBean>> newHomeTwo(@FieldMap Map<String, Object> params);

    /**
     * 工程师被打赏记录
     * selProjectorRewardList
     */
    @POST("mobile?methodName=selProjectorRewardList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<RewardBean>>> selProjectorRewardList(@FieldMap Map<String, Object> params);

    //机器类型
    @GET("app/GetMachineType")
    Call<ApiResponseBody<List<PutQuestionsChooseVO>>> getMachineType();
    //机器类型
    @GET("app/GetBrandByType")
    Call<ApiResponseBody<List<PutQuestionsChooseVO>>> GetBrandByType(@QueryMap Map<String, Object> params);
    //机器类型
    @GET("app/GetSeriesAndModelByBrand")
    Call<ApiResponseBody<List<PutQuestionsChooseVO>>> GetSeriesAndModelByBrand(@QueryMap Map<String, Object> params);



    /**
     * 查询评价的标签
     *weekend/mobile?methodName=evaluateLable
     */
    @POST("mobile?methodName=evaluateLable")
    @FormUrlEncoded
    Call<ApiResponseBody<EvaluateLableNumVo>> evaluateLable(@FieldMap Map<String, Object> params);


    /**
     *  根据lable标签查询对应的评价列表
     *     weekend/mobile?methodName=selLableEvaluateList
     */
    @POST("mobile?methodName=selLableEvaluateList")
    @FormUrlEncoded
    Call<ApiResponseBody<List<UserEvaluateVO>>> selLableEvaluateList(@FieldMap Map<String, Object> params);

    /**
     * 工程师对评价进行一次性回复
     * weekend/mobile?methodName= replyEvaluate
     */
    @POST("mobile?methodName=replyEvaluate")
    @FormUrlEncoded
    Call<ApiResponseBody> replyEvaluate(@FieldMap Map<String, Object> params);

}

